package com.atwisdom.star.dcs.service;

import cn.hutool.core.date.DateTime;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface RealTimeDayStatService {

    /**
     * 按分钟定时统计分表
     * @return
     */
    void realTimeDataStat();


    /**
     * 计算生产节拍
     * @param equipCode 设备编码，pCode:品番，statDate：日期
     * @return 返回生产节拍
     */
    Double calculateCycleCount(String equipCode, Date statDate);


    /**
     * 按设备计数
     * @param equipCode 设备编码
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 返回计数统计
     */
    double getEquipCount(String equipCode, DateTime startTime, DateTime endTime);

    /**
     * 按设备列表计数
     * @param equipCodes 设备编码列表
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 返回计数统计Map
     */
     Map<String,Double> queryEquipCount(List<String> equipCodes, DateTime startTime, DateTime endTime);

    /**
     *按设备品番计数
     * @param equipCode 设备编码
     * @param pCode 产品品番编号
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 返回计数统计
     * @return
     */
    double getEquipPfCount(String equipCode,String pCode, DateTime startTime,DateTime endTime);


    /**
     * 设备有效工作时长
     * @param equipCode 设备编码
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 返回计数统计
     */
    double getEquipWorkDuration(String equipCode, DateTime startTime, DateTime endTime);
}
